Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Інститут комп’ютерних технологій автоматики та метрології
Кафедра БІТ
Звіт
до лабораторної роботи № 6
з дисципліни :
“ Програмування комп’ютерної графіки ”
Львів 2012
Мета: Знайомство з можливостями бібліотеки OPENGL для завдання параметрів освітлення сцени; аналіз різних варіантів освітлення.
КОРОТКІ ТЕОРЕТИЧНІ ДАНІ
OPENGL обчислює колір кожного пікселя в результуючій, сцені, що відображується, міститься в буфері кадру. Частка цього розрахунку залежить від того, яке освітлення використовується в сцені, і як об'єкти сцени відображають і поглинають світло. Як приклад цьому пригадаєте, що океан (або море, або річка – взагалі кажучи, будь-яке водоймище) має різний колір в сонячний або в хмарний день. Присутність світла або хмар визначає, чи буде вода виглядати яскраво сині або брудно зеленою. По правді кажучи, більшість об'єктів взагалі не виглядають тривимірними, якщо вони не освітлені. Скажімо, неосвітлена сфера нічим не відрізняється від двовимірного круга. Освітлення будь-якого об'єкту залежить від двох чинників. Перший - це матеріал, з якого зроблений об'єкт. Другий - це світло, яким він освітлений.
Модель освітлення.
OPENGL розраховує світло і освітлення так, як ніби світло може бути роздільний на червоний, зелений і синій компоненти. Таким чином, джерело світла характеризується кількістю червоного, зеленого і синього світла, яку він випромінює, а матеріал поверхні характеризується долями червоного, зеленого і синього компонентів, які він відображає в різних напрямах. Рівняння освітленості в OPENGL є всього лише апроксимаціями, та зате вони працюють досить добре і можуть бути обчислені відносно швидко.
У моделі освітлення OPENGL світло виходить від декількох джерел, які можуть включатися і вимикатися індивідуально. Частина світу зазвичай виходить з якого-небудь певного напряму або позиції, частка розподілена по всій сцені. Наприклад, якщо ви включите лампочку в кімнаті, велика частина світу виходитиме від неї, але частина світу падає на поверхні предметів в кімнаті після того, як він відбився від однієї, два, три або більш за стени. Вважається, що це багато разів відбите світло (званий фоновим світлом) розподілене настільки сильно, що не існує ніякого способу визначити його початковий напрям, проте він зникає при виключенні певного джерела світла.
Нарешті, в сцені може бути також присутнім загальне фонове світло, у якого немає ніякого конкретного джерела, неначе він був відбитий стільки раз і розподілений так сильно, що його оригінальне джерело встановити неможливо.
У моделі OPENGL ефект від джерела світла присутній тільки якщо є поверхні що поглинають або відображають світло. Вважається, що кожна поверхня складається з матеріалу з декількома властивостями. Матеріал може випромінювати своє власне світло (наприклад, фара автомобіля), він може розподіляти деяку кількість вхідного світла на всіх напрямках, також він може відображати частину світу в певному напрямі (наприклад, дзеркало або інша блискуча поверхня).
У моделі освітлення OPENGL передбачається, що освітлення може бути розділене на 4 компоненти: фонове (ambient), дифузне (diffuse), дзеркальне (specular) і витікаюче (емісійне – emissive). Все 4 компоненти розраховуються незалежно і тільки тоді підсумовуються.
Фонове, дифузне, дзеркальне і витікаюче світло.
Фонове випромінювання – це світло, яке настільки розподілене середою (предметами, стінами і так далі), що його напрям визначити неможливо – здається, що він виходитиме звідусіль. Лампа денного світла має великий фоновий компонент, оскільки велика частина світу, досягаючого вашого ока, спочатку відбивається від безлічі поверхонь. Вуличний ліхтар має маленький фоновий компонент: велика частина його світу йде в одному напрямі, крім того, оскільки він знаходиться на вулиці, дуже невелика частина світу потрапляє вам в ок...